﻿<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
    <xsl:output method="xml" indent="yes" omit-xml-declaration="no"/>

    <xsl:template match="/">
      <VisualizerData
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:noNamespaceSchemaLocation="RevisedNSFFundingSchema.xsd">
        <xsl:variable name="RRA">Research and Related Activities</xsl:variable>
        <xsl:variable name="EHR">Education and Human Resources</xsl:variable>
        <xsl:variable name="ARI">Academic Research Infrastructure</xsl:variable>
        <xsl:variable name="MREFC">Major Research Equipment and Facilities Construction</xsl:variable>
        <xsl:variable name="AOAM">Agency Operations and Award Management</xsl:variable>
        <xsl:variable name="OIG">Office of Inspector General</xsl:variable>
        <xsl:variable name="NSB">National Science Board</xsl:variable>
        <xsl:variable name="NSFTotal">National Science Foundation Total</xsl:variable>
        <xsl:variable name="current"> (current)</xsl:variable>
        <xsl:variable name="constant"> (constant)</xsl:variable>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$RRA"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$RRA"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$EHR"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$EHR"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$ARI"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$ARI"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$MREFC"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$MREFC"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$AOAM"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$AOAM"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$OIG"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$OIG"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$NSB"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$NSB"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$NSFTotal"/>
            <xsl:copy-of select="$current"/>
          </xsl:element>
        </xsl:element>
        <xsl:element name="selectable">
          <xsl:element name="text">
            <xsl:copy-of select="$NSFTotal"/>
            <xsl:copy-of select="$constant"/>
          </xsl:element>
        </xsl:element>
        <xsl:for-each select="NSFFundingMillions/*">
          <xsl:variable name="year" select="substring(name(),3,4)"/>
          <xsl:variable name="formattedYear" select="$year"/>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$RRA"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/RRA/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$RRA"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/RRA/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$EHR"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/EHR/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$EHR"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/EHR/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$ARI"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/ARI/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$ARI"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/ARI/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$MREFC"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/MREFC/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$MREFC"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/MREFC/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$AOAM"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/AOAM/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$AOAM"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/AOAM/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$OIG"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/OIG/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$OIG"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/OIG/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$NSB"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/NSB/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$NSB"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/NSB/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$NSFTotal"/>
              <xsl:copy-of select="$current"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(CurrentDollars/NSFTotal/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element name="data">
            <xsl:element name="label">
              <xsl:copy-of select="$NSFTotal"/>
              <xsl:copy-of select="$constant"/>
            </xsl:element>
            <xsl:element name="date">
              <xsl:copy-of select="$formattedYear"/>
              <xsl:text>,0,1</xsl:text>
            </xsl:element>
            <xsl:element name="value">
              <xsl:value-of select="translate(translate(translate(ConstantDollars/NSFTotal/.,'$',''),',',''),' ','')"/>
            </xsl:element>
          </xsl:element>
        </xsl:for-each>
      </VisualizerData>
    </xsl:template>
</xsl:stylesheet>
